import clsx from "clsx"; import Link from "next/link"; import { useContext } from "react"; import { useRouter } from "next/router"; import { GetServerSideProps } from "next"; import { Context } from "../../libs/context"; import useGet from "../../utils/hooks/useGet"; import type { ListItem } from "../../types/http"; import NovelItem from "../../components/NovelItem"; import styles from "../../styles/genre.module.scss"; import { get } from "../../utils/http"; const Genre = () => { const { query } = useRouter(); const { data } = useGet( query.genre ? `/api/genre/${query.genre}` : "/api/list" ); const store = useContext(Context); return (

Genres

All {store.genre.map((item) => ( {item.name} ))}

List

); }; export const getServerSideProps: GetServerSideProps< { fallback: { [key: string]: any } }, { genre: string } > = async ({ params }) => { const key = params?.genre ? `/api/genre/${params.genre}` : `/api/list`; const data = await get(key); return { props: { fallback: { [key]: data, }, }, }; }; export default Genre;